Soru & Cevap

List ve ICollection arasındaki fark nedir.

20.10.2021 - 01:37

Merhaba,

Bununla ilgili bilen arkadaşlar detaylı bir bilgi verebilirler mi?

 

3,690 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user sevgii
sevgii
29.12.2022 - 02:35

List bir sınıfken  Icollection sınıftan bağımsızdır.

picture-16113-1397849170.jpg
danego61
19.11.2021 - 02:56

Merhabalar;

Bu zamana kadar neden kimse cevap vermemiş cidden çok merak ediyorum. Forumda aktif değilim. Sorunun cevabına gelirsek bildiğim kadarıyla anlatmaya çalışayım.

List bir sınıftır. List sınıfı sayesinde biz c#'da listeler oluşturabiliyoruz. ICollection ise bir interface yani arayüz. ICollection arayüzünden new anahtarı ile yeni instance oluşturamayız. Fakat c#'da şöyle bir durum var. Tüm koleksiyonlar ICollection interface'sini implement ederler yani ondan türerler. Bu sayede her hangi bir listeye ihtiyaç duyduğun zaman bunu ICollection tipinde tanımlayıp kullanabilirsin. Bu şekilde tanımladığın zaman List sınıfına bağımlı olmazsın.

Örneğin:

List<int> liste = new List<int>();

Uygulamada şöyle bir tanımlama yaptın. Böyle bir kullanım senaryosunda sen list yerine arraylist kullanma kararı aldığında, sadece list yerine arraylist yazmak işi kurtaramayabiliyor. Sen list yerine arraylist yazdığın zaman nesnenin fonksiyonları değişiyor ve sen değişen bu fonksiyonlarıda kodunu da değiştirmen gerekiyor.

ICollection<int> liste = new List<int>();

Eğer şu şekilde tanımlama yapıp kodlamanı yaparsan, artık list sınıfına bağımlı olmaktan kurtuluyorsun ve ileride list yerine "= new ArrayList<int>()" yazdığın zamanda kodun sıkıntısız bir şekilde çalışmaya devam ediyor.

Umarım açıklayıcı olmuştur.

Muhittin Akın
10.12.2021 - 09:00

Merhaba,

Verdiğiniz detaylı bilgiden dolayı çok teşekkür ederim.

Gayet açıklayıcı bir şekilde anlatmışsınız.